using System;
using System.Collections.Generic;

using Atomic.Libraries.CommandLine;
//using Atomic.Libraries.CommandLine.Text;

namespace Atomic.Libraries.Jobs
{
	public class JobCommandLine
	{
		//--nodes
		//--processes-per-node
		//--memory-per-process

		[Option("jobmanager", Required = true, HelpText = "Indicates that the job manager is to be started. This flag must be used.")]
		public bool JobManager
		{
			get;
			set;
		}

		[Option("start", MetaValue = "INT", HelpText = "Call-back to start the job. Do not use this manually.")]
		public int Start
		{
			get;
			set;
		}

		[Option('q', "queue", HelpText = "The queue to be used for submitting or resubmitting.")]
		public bool Queue
		{
			get;
			set;
		}

		[OptionList("resubmit", Separator = ',', HelpText = "Resubmits the comma-separated list of jobs.")]
		public IList<string> Resubmit
		{
			get;
			set;
		}

		[Option("resubmit-dependencies", HelpText = "Resubmit dependencies recursively.")]
		public bool ResubmitDependencies
		{
			get;
			set;
		}

		[Option("resubmit-keep", HelpText = "Keep job output directory when resubmitting.")]
		public bool ResubmitKeep
		{
			get;
			set;
		}

		/*[HelpOption]
		public string GetUsage()
		{
			return HelpText.AutoBuild(this, current => HelpText.DefaultParsingErrorsHandler(this, current));
		}*/
	}
}
